create table state_codes (
	code	nchar(2) primary key,
	name	nvarchar(100) not null unique
);

go

create proc state_code_add
	@code			nchar(2),
	@name			nvarchar(100)
as
insert into state_codes (code, name)
values (@code, @name);

go

create proc state_code_list
as
select sc.code					,
		sc.name
from state_codes sc
order by sc.name;

go

create proc state_code_load
	@code			nchar(2)
as
select sc.code					,
		sc.name
from state_codes sc
where code = @code;

go

create proc state_code_exists
	@code				nchar(2),
	@exists				bit = null output
as
if (exists (select null
			from state_codes
			where code = @code))
	set @exists = 1;
else set @exists = 0;

go

--exec state_code_add 'AL', 'ALABAMA';
--exec state_code_add 'AK', 'ALASKA';
--exec state_code_add 'AS', 'AMERICAN SAMOA';
--exec state_code_add 'AZ', 'ARIZONA';
--exec state_code_add 'AR', 'ARKANSAS';
--exec state_code_add 'CA', 'CALIFORNIA';
--exec state_code_add 'CO', 'COLORADO';
--exec state_code_add 'CT', 'CONNECTICUT';
--exec state_code_add 'DE', 'DELAWARE';
--exec state_code_add 'DC', 'DISTRICT OF COLUMBIA';
--exec state_code_add 'FM', 'FEDERATED STATES OF MICRONESIA';
--exec state_code_add 'FL', 'FLORIDA';
--exec state_code_add 'GA', 'GEORGIA';
--exec state_code_add 'GU', 'GUAM';
--exec state_code_add 'HI', 'HAWAII';
--exec state_code_add 'ID', 'IDAHO';
--exec state_code_add 'IL', 'ILLINOIS';
--exec state_code_add 'IN', 'INDIANA';
--exec state_code_add 'IA', 'IOWA';
--exec state_code_add 'KS', 'KANSAS';
--exec state_code_add 'KY', 'KENTUCKY';
--exec state_code_add 'LA', 'LOUISIANA';
--exec state_code_add 'ME', 'MAINE';
--exec state_code_add 'MH', 'MARSHALL ISLANDS';
--exec state_code_add 'MD', 'MARYLAND';
--exec state_code_add 'MA', 'MASSACHUSETTS';
--exec state_code_add 'MI', 'MICHIGAN';
--exec state_code_add 'MN', 'MINNESOTA';
--exec state_code_add 'MS', 'MISSISSIPPI';
--exec state_code_add 'MO', 'MISSOURI';
--exec state_code_add 'MT', 'MONTANA';
--exec state_code_add 'NE', 'NEBRASKA';
--exec state_code_add 'NV', 'NEVADA';
--exec state_code_add 'NH', 'NEW HAMPSHIRE';
--exec state_code_add 'NJ', 'NEW JERSEY';
--exec state_code_add 'NM', 'NEW MEXICO';
--exec state_code_add 'NY', 'NEW YORK';
--exec state_code_add 'NC', 'NORTH CAROLINA';
--exec state_code_add 'ND', 'NORTH DAKOTA';
--exec state_code_add 'MP', 'NORTHERN MARIANA ISLANDS';
--exec state_code_add 'OH', 'OHIO';
--exec state_code_add 'OK', 'OKLAHOMA';
--exec state_code_add 'OR', 'OREGON';
--exec state_code_add 'PW', 'PALAU';
--exec state_code_add 'PA', 'PENNSYLVANIA';
--exec state_code_add 'PR', 'PUERTO RICO';
--exec state_code_add 'RI', 'RHODE ISLAND';
--exec state_code_add 'SC', 'SOUTH CAROLINA';
--exec state_code_add 'SD', 'SOUTH DAKOTA';
--exec state_code_add 'TN', 'TENNESSEE';
--exec state_code_add 'TX', 'TEXAS';
--exec state_code_add 'UT', 'UTAH';
--exec state_code_add 'VT', 'VERMONT';
--exec state_code_add 'VI', 'VIRGIN ISLANDS';
--exec state_code_add 'VA', 'VIRGINIA';
--exec state_code_add 'WA', 'WASHINGTON';
--exec state_code_add 'WV', 'WEST VIRGINIA';
--exec state_code_add 'WI', 'WISCONSIN';
--exec state_code_add 'WY', 'WYOMING';